home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Animacje, filmy i prezentacje / Modelowanie 3D / Wings 3D 0.98.35 / wings-0.98.35.exe / lib / README-shaders.txt < prev    next >
Text File  |  2006-07-19  |  3KB  |  61 lines

  1.  
  2. Writing shaders to autouv.
  3.  
  4. It is standard opengl 2.0 GLSL programs, easy to learn and code.
  5. No need for erlang knowledge (besides the simple config files).
  6. Each shader needs a config file, it should be named 
  7. wpc_SHADERNAME.auv in the plugins/autouv/ directory.
  8.  
  9. See the included samples for config options, currently the error
  10. checking isn't the best so if you do something wrong you might crash
  11. the autouv window.
  12.  
  13. The config should atleast contain:
  14. {name, "Shader"}. 
  15. {vertex_shader, "vertexshader_file.vs"}.
  16. {fragment_shader, "fragmentshader_file.fs"}.
  17.  
  18. Comments are written after a percent sign, i.e % This is a comment
  19.  
  20. The data to the vertex shader comes as:
  21. gl_Vertex contains the uv-coords.
  22. gl_MultiTexCoord1 contains the real 3d vertex postions in world space.
  23.  
  24. There is also an option 'requires' which contains a list of
  25. requirements, currently only 'normal' (and 'binormal' currently not
  26. calculated correctly) are available.  
  27. {requires, [normal]}. 
  28. Will calculate each vertex normal and send it to the vertex shader, via
  29. gl_Normal.  'binormal' are sent through 'gl_MultiTexCoord2.xyz'.
  30.  
  31. Other options:  Sent as uniforms
  32. {auv, auv_noise}. % sampler3D (calculate only first time) of noise  
  33. {auv, auv_bg}.    % sampler2D image of the previous pass
  34. {auv, auv_txsz}.  % vec2 width and heigth of image
  35. {auv, {auv_send_texture,"UserQuestion",true}}.    % Float 1.0 (true) or 0.0 (false) 
  36. % Asks user if we should work on whole image or only the selected chart parts, sent as float 1.0 or 0.0.
  37. {auv, auv_bbpos3d}. % Vec3[2] The Min and Max coords of the rendered charts
  38. {auv, auv_bbpos2d}. % Vec2[2] The Min and Max uv-coords of each chart
  39.  
  40. User options/questions can be sent as uniforms as well. The format is:
  41. {uniform, Type, VarID in shader, DefaultValue, StringInGUI}.
  42.  
  43. The different types are color(vec4), float, bool(float 0.0 or 1.0),image(sampler2D) 
  44. and {slider, Min, Max} (float). There is also a special menu entry, see the filter shader example.
  45. VarID should be the name of the uniform in your shader and DefaultValue is the default 
  46. value, StringInGui is the user question.
  47.  
  48. Hopefully you can create and share some amazing shaders. More options, data, types can
  49. be added, drop me an email (and code) if you need something.
  50. If you improve the examples I have thrown together send it as well, I'm not very good at
  51. writing shaders and need some help.
  52.  
  53. Beware that this is the first version so the interface might change some in the coming releases.
  54.  
  55. Some tips the shaders are compiled each time create texture is pressed so there is no need
  56. to close wings or autouv when developing shaders, just edit/save the shader file and test it again.
  57. Keep an eye on the erlang window or the console window for compiler info/errors.
  58.  
  59. Regards 
  60. /Dan Gudmundsson (alias dgud)
  61.